jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn("JQMIGRATE: "+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log("JQMIGRATE: Logging is active"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},"BackCompat"===document.compatMode&&r("jQuery is not compatible with Quirks Mode");var o=e("",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQuery.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQuery.fn.attr(props, pass) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQuery.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQuery.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQuery.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQuery.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQuery.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQuery.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQuery.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQuery.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQuery.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQuery.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQuery.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQuery.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQuery,window); ;(function($){ $.fn.extend({ cn_autocomplete: function(urlOrData, options){ var isUrl=typeof urlOrData=="string"; options=$.extend({}, $.Autocompleter.defaults, { url: isUrl ? urlOrData:null, data: isUrl ? null:urlOrData, delay: isUrl ? $.Autocompleter.defaults.delay:10, max: options&&!options.scroll ? 10:150 }, options); options.highlight=options.highlight||function(value){ return value; }; options.formatMatch=options.formatMatch||options.formatItem; return this.each(function(){ new $.Autocompleter(this, options); }); }, result: function(handler){ return this.bind("result", handler); }, search: function(handler){ return this.trigger("search", [handler]); }, flushCache: function(){ return this.trigger("flushCache"); }, setOptions: function(options){ return this.trigger("setOptions", [options]); }, unautocomplete: function(){ return this.trigger("unautocomplete"); }}); $.Autocompleter=function(input, options){ var KEY={ UP: 38, DOWN: 40, DEL: 46, TAB: 9, RETURN: 13, ESC: 27, COMMA: 188, PAGEUP: 33, PAGEDOWN: 34, BACKSPACE: 8 }; var globalFailure=null; if(options.failure!=null&&typeof options.failure=="function"){ globalFailure=options.failure; } var $input=$(input).attr("autocomplete", "off").addClass(options.inputClass); var timeout; var previousValue=""; var cache=$.Autocompleter.Cache(options); var hasFocus=0; var lastKeyPressCode; var config={ mouseDownOnSelect: false }; var select=$.Autocompleter.Select(options, input, selectCurrent, config); var blockSubmit; $.browser.opera&&$(input.form).bind("submit.autocomplete", function(){ if(blockSubmit){ blockSubmit=false; return false; }}); $input.bind(($.browser.opera ? "keypress":"keydown") + ".autocomplete", function(event){ hasFocus=1; lastKeyPressCode=event.keyCode; switch(event.keyCode){ case KEY.UP: if(select.visible()){ event.preventDefault(); select.prev(); }else{ onChange(0, true); } break; case KEY.DOWN: if(select.visible()){ event.preventDefault(); select.next(); }else{ onChange(0, true); } break; case KEY.PAGEUP: if(select.visible()){ event.preventDefault(); select.pageUp(); }else{ onChange(0, true); } break; case KEY.PAGEDOWN: if(select.visible()){ event.preventDefault(); select.pageDown(); }else{ onChange(0, true); } break; case options.multiple&&$.trim(options.multipleSeparator)==","&&KEY.COMMA: case KEY.TAB: case KEY.RETURN: if(selectCurrent()){ event.preventDefault(); blockSubmit=true; return false; } break; case KEY.ESC: select.hide(); break; default: clearTimeout(timeout); timeout=setTimeout(onChange, options.delay); break; }}).focus(function(){ hasFocus++; }).blur(function(){ hasFocus=0; if(!config.mouseDownOnSelect){ hideResults(); }}).click(function(){ if(options.clickFire){ if(!select.visible()){ onChange(0, true); }}else{ if(hasFocus++ > 1&&!select.visible()){ onChange(0, true); }} }).bind("search", function(){ var fn=(arguments.length > 1) ? arguments[1]:null; function findValueCallback(q, data){ var result; if(data&&data.length){ for (var i=0; i < data.length; i++){ if(data[i].result.toLowerCase()==q.toLowerCase()){ result=data[i]; break; }} } if(typeof fn=="function") fn(result); else $input.trigger("result", result&&[result.data, result.value]); } $.each(trimWords($input.val()), function(i, value){ request(value, findValueCallback, findValueCallback); }); }).bind("flushCache", function(){ cache.flush(); }).bind("setOptions", function(){ $.extend(true, options, arguments[1]); if("data" in arguments[1]) cache.populate(); }).bind("unautocomplete", function(){ select.unbind(); $input.unbind(); $(input.form).unbind(".cn_autocomplete"); }); function selectCurrent(){ var selected=select.selected(); if(!selected) return false; var v=selected.result; previousValue=v; if(options.multiple){ var words=trimWords($input.val()); if(words.length > 1){ var seperator=options.multipleSeparator.length; var cursorAt=$(input).selection().start; var wordAt, progress=0; $.each(words, function(i, word){ progress +=word.length; if(cursorAt <=progress){ wordAt=i; return false; } progress +=seperator; }); words[wordAt]=v; v=words.join(options.multipleSeparator); } v +=options.multipleSeparator; } $input.val(v); hideResultsNow(); $input.trigger("result", [selected.data, selected.value]); return true; } function onChange(crap, skipPrevCheck){ if(lastKeyPressCode==KEY.DEL){ select.hide(); return; } var currentValue=$input.val(); if(!skipPrevCheck&¤tValue==previousValue) return; previousValue=currentValue; currentValue=lastWord(currentValue); if(currentValue.length >=options.minChars){ $input.addClass(options.loadingClass); if(!options.matchCase) currentValue=currentValue.toLowerCase(); request(currentValue, receiveData, hideResultsNow); }else{ stopLoading(); select.hide(); }}; function trimWords(value){ if(!value) return [""]; if(!options.multiple) return [$.trim(value)]; return $.map(value.split(options.multipleSeparator), function(word){ return $.trim(value).length ? $.trim(word):null; }); } function lastWord(value){ if(!options.multiple) return value; var words=trimWords(value); if(words.length==1) return words[0]; var cursorAt=$(input).selection().start; if(cursorAt==value.length){ words=trimWords(value) }else{ words=trimWords(value.replace(value.substring(cursorAt), "")); } return words[words.length - 1]; } function autoFill(q, sValue){ if(options.autoFill&&(lastWord($input.val()).toLowerCase()==q.toLowerCase())&&lastKeyPressCode!=KEY.BACKSPACE){ $input.val($input.val() + sValue.substring(lastWord(previousValue).length)); $(input).selection(previousValue.length, previousValue.length + sValue.length); }}; function hideResults(){ clearTimeout(timeout); timeout=setTimeout(hideResultsNow, 200); }; function hideResultsNow(){ var wasVisible=select.visible(); select.hide(); clearTimeout(timeout); stopLoading(); if(options.mustMatch){ $input.search(function (result){ if(!result){ if(options.multiple){ var words=trimWords($input.val()).slice(0, -1); $input.val(words.join(options.multipleSeparator) + (words.length ? options.multipleSeparator:"")); }else{ $input.val(""); $input.trigger("result", null); }} } ); }}; function receiveData(q, data){ if(data&&data.length&&hasFocus){ stopLoading(); select.display(data, q); autoFill(q, data[0].value); select.show(); }else{ hideResultsNow(); }}; function request(term, success, failure){ if(!options.matchCase) term=term.toLowerCase(); var data=cache.load(term); if(data&&data.length){ success(term, data); }else if((typeof options.url=="string")&&(options.url.length > 0)){ var extraParams={ timestamp: +new Date() }; $.each(options.extraParams, function(key, param){ extraParams[key]=typeof param=="function" ? param():param; }); $.ajax({ mode: "abort", port: "autocomplete" + input.name, dataType: options.dataType, url: options.url, data: $.extend({ q: lastWord(term), limit: options.max }, extraParams), success: function(data){ var parsed=options.parse&&options.parse(data)||parse(data); cache.add(term, parsed); success(term, parsed); }}); }else{ select.emptyList(); if(globalFailure!=null){ globalFailure(); }else{ failure(term); }} }; function parse(data){ var parsed=[]; var rows=data.split("\n"); for (var i=0; i < rows.length; i++){ var row=$.trim(rows[i]); if(row){ row=row.split("|"); parsed[parsed.length]={ data: row, value: row[0], result: options.formatResult&&options.formatResult(row, row[0])||row[0] };}} return parsed; }; function stopLoading(){ $input.removeClass(options.loadingClass); };}; $.Autocompleter.defaults={ inputClass: "ac_input", resultsClass: "ac_results", loadingClass: "ac_loading", minChars: 1, delay: 400, matchCase: false, matchSubset: true, matchContains: false, cacheLength: 100, max: 1000, mustMatch: false, extraParams: {}, selectFirst: true, formatItem: function(row){ return row[0]; }, formatMatch: null, autoFill: false, width: 0, multiple: false, multipleSeparator: " ", inputFocus: true, clickFire: false, highlight: function(value, term){ return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "$1"); }, scroll: true, scrollHeight: 180, scrollJumpPosition: true }; $.Autocompleter.Cache=function(options){ var data={}; var length=0; function matchSubset(s, sub){ if(!options.matchCase) s=s.toLowerCase(); var i=s.indexOf(sub); if(options.matchContains=="word"){ i=s.toLowerCase().search("\\b" + sub.toLowerCase()); } if(i==-1) return false; return i==0||options.matchContains; }; function add(q, value){ if(length > options.cacheLength){ flush(); } if(!data[q]){ length++; } data[q]=value; } function populate(){ if(!options.data) return false; var stMatchSets={}, nullData=0; if(!options.url) options.cacheLength=1; stMatchSets[""]=[]; for(var i=0, ol=options.data.length; i < ol; i++){ var rawValue=options.data[i]; rawValue=(typeof rawValue=="string") ? [rawValue]:rawValue; var value=options.formatMatch(rawValue, i+1, options.data.length); if(typeof(value)==='undefined'||value===false) continue; var firstChar=value.charAt(0).toLowerCase(); if(!stMatchSets[firstChar]) stMatchSets[firstChar]=[]; var row={ value: value, data: rawValue, result: options.formatResult&&options.formatResult(rawValue)||value }; stMatchSets[firstChar].push(row); if(nullData++ < options.max){ stMatchSets[""].push(row); }}; $.each(stMatchSets, function(i, value){ options.cacheLength++; add(i, value); }); } setTimeout(populate, 25); function flush(){ data={}; length=0; } return { flush: flush, add: add, populate: populate, load: function(q){ if(!options.cacheLength||!length) return null; if(!options.url&&options.matchContains){ var csub=[]; for(var k in data){ if(k.length > 0){ var c=data[k]; $.each(c, function(i, x){ if(matchSubset(x.value, q)){ csub.push(x); }}); }} return csub; } else if(data[q]){ return data[q]; } else if(options.matchSubset){ for (var i=q.length - 1; i >=options.minChars; i--){ var c=data[q.substr(0, i)]; if(c){ var csub=[]; $.each(c, function(i, x){ if(matchSubset(x.value, q)){ csub[csub.length]=x; }}); return csub; }} } return null; }};}; $.Autocompleter.Select=function (options, input, select, config){ var CLASSES={ ACTIVE: "ac_over" }; var listItems, active=-1, data, term="", needsInit=true, element, list; function init(){ if(!needsInit) return; element=$("
") .hide() .addClass(options.resultsClass) .css("position", "absolute") .appendTo(document.body) .hover(function(event){ if($(this).is(":visible")){ input.focus(); } config.mouseDownOnSelect=false; }); list=$("